<?php

namespace maotool\core\validate;

interface FormValidateItem
{

    /**
     * @return mixed
     */
    public function getValue();

    /**
     * @param $value
     * @return mixed
     */
    public function setValue($value);

    /**
     * @return list<FormValidateResult>
     */
    public function getResults();

    /**
     * @param $results list<FormValidateResult>
     * @return mixed
     */
    public function setResults($results);

    /**
     * @param $results list<FormValidateItem>
     * @return mixed
     */
    public function getItems($results);

    /**
     * @param $items list<FormValidateItem>
     * @return mixed
     */
    public function setItems($items);

    /**
     * @return list<FormValidateResult>
     */
    public function getAllResults();

    /**
     * @return list<FormValidateResult>
     */
    public function getAllSuccessResults();

    /**
     * @return list<FormValidateResult>
     */
    public function getAllErrorResults();

    /**
     * @return list<FormValidateResult>
     */
    public function getSuccessResults();

    /**
     * @return list<FormValidateResult>
     */
    public function getErrorResults();

    /**
     * @return bool
     */
    public function isAllSuccess();

    /**
     * @return bool
     */
    public function isAllError();

    /**
     * @return bool
     */
    public function isSuccess();

    /**
     * @return bool
     */
    public function isError();

}